//  ADG714可以接收SPI发送来的8bits数据对信号输出进行控制

#include <stdio.h>
#include <stdlib.h>

#include "COMMON.h"

#ifndef _MAX14662_H_
#define _MAX14662_H_

//  The following 6 macros are 'opt's
#define _CTL1_      0
#define _CTL2_      1
#define _CTL3_      2
#define _5290F_A0_  3
#define _5290F_A1_  4
#define _5290F_EN_  5

typedef struct _MAX14662_Config{
    int spi_tx_size;    // 一次SPI传输的数据bit数,对于ADG714而言是8bits
    int _CTL1;     //控制TGA是否连接到A4,为0时表示接通,为1时表示断开并接地
    int _CTL2;     //控制TGD是否连接到D1,为0时表示接通,为1时表示断开并接地
    int _CTL3;
    int _5209F_A0;
    int _5209F_A1;
    int _5209F_EN;
} MAX14662_Config;

//  initialize to default settings
int set_max14662_config_default( MAX14662_Config *max14662_cfg );

//  load MAX14662 configuration data from *inifile
int load_max14662_config( MAX14662_Config *max14662_cfg, char *inifile );

//  print MAX14662 configurations for debug
int print_max14662_config( MAX14662_Config *max14662_cfg );

//  update configuration for a 'opt' with value 'opt_val'
int update_max14662_config( MAX14662_Config *max14662_cfg, char* opt, int opt_val );

//  send configuration via SPI
int config_max14662_via_SPI(   uint32_t *gpio_reg, 
					           uint32_t *gpio2_reg, 
					           uint32_t *gpio_in_reg,
					           SPI_CONFIG *spi_config,
					           MAX14662_Config *max14662_cfg );



#endif  // _ADG714_H_
